package com.mhkj.revise.function.repository;

import java.util.List;

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import com.mhkj.revise.plan.entity.PlanNode;
import com.mics.core.system.base.repository.BaseRepository;

/**
 * 职能计划节点
 * @author mics
 * @date 2018年8月29日
 * @version 1.0
 */
@Repository
public interface FunctionPlanNodeRepository extends BaseRepository<PlanNode>{

	/**
	 * 查找完成时间最大节点
	 * @author mics
	 * @date 2018年8月14日
	 * @version 1.0
	 */
	@Query(value="SELECT t.* FROM t_plan_node t where  plan_id = :planId order by end_date  DESC limit 0,1",nativeQuery=true)
	PlanNode getLastPlanNode(@Param("planId")long planId);

	/**
	 * 查找开始时间最小节点
	 * @author mics
	 * @date 2018年8月28日
	 * @version 1.0
	 */
	@Query(value="SELECT t.* FROM t_plan_node t where  plan_id = :planId order by begin_date  ASC limit 0,1",nativeQuery=true)
	PlanNode getFristPlanNode(@Param("planId")long planId);

	/**
	 * 
	 * 根据计划类型查询审核通过得节点
	 * @author mics
	 * @date 2018年9月3日
	 * @version 1.0
	 */
	@Query(value="SELECT pn.* FROM t_plan_node pn LEFT JOIN t_plan p ON p.id = pn.plan_id LEFT JOIN t_dictionary d ON d.id = p.plan_type_id WHERE d.id = :planTypeId and p.state=2",nativeQuery=true)
	List<PlanNode> getPlanNodeByPlanType(@Param("planTypeId")Long id);
}
